/**
 * clipboard 在系统剪贴板上执行复制和粘贴操作
 */
const {
  app,
  BrowserWindow,
  ipcMain,
  Menu,
} = require('electron');
const WinState = require('electron-win-state').default; // 注意暴露方法
const path = require('path');
const getSource = require('./controller/getSource');
const openShell = require('./controller/openShell');
const getRegion = require('./controller/getRegion');
const getHoliday = require('./controller/getHoliday');
const openView = require('./controller/openView');

const menu = require('./controller/menu');

app.commandLine.appendSwitch('ignore-certificate-errors'); // 忽略证书错误
app.commandLine.appendSwitch('disable-web-security'); // 允许跨域

// 是否是生产环境
const isPackaged = app.isPackaged;

// https://www.npmjs.com/package/electron-win-state
// 记录每次调整窗口大小
const winState = new WinState({
  defaultWidth: 1800,
  defaultHeight: 760,
});

const createWindow = () => {
  let mainWindow = new BrowserWindow({
    ...winState.winOptions,
    show: false, //解决启动页白屏问题，如果嵌套网站（斟酌使用）
    frame: false, // 移除默认的标题栏
    titleBarStyle: 'hidden', // 显示最大化、最小化按钮
    titleBarOverlay: {
      color: 'rgba(0,0,0,0)',
      symbolColor: '#ffffff',
      height:30
    },
    webPreferences: {
      preload: path.resolve(__dirname, './controller/preload.js'),
      webSecurity:isPackaged ? false : true, // 允许跨域
    },
  });


  
  // 使用 loadFile 加载 electron/index.html 文件
  if (!isPackaged) {
    mainWindow.loadURL('http://localhost:5173/');
     // 开发环境打开控制台
     mainWindow.webContents.openDevTools();
  
  } else {
    // mainWindow.loadFile(path.resolve(__dirname, '../dist/index.html'));
    // mainWindow.loadURL('http://www.tssxxy.asia');
    mainWindow.loadURL('http://124.223.115.84');
  }

  // 设置最小宽度个高度
  mainWindow.setMinimumSize(1200, 760);
  // 启动或停止闪烁窗口, 以吸引用户的注意。
  mainWindow.flashFrame(true);

  // 解决启动页白屏问题，如果嵌套别的网站加载缓慢（斟酌使用）
  mainWindow.on('ready-to-show', () => {
    mainWindow.show();
  });

  const wc = mainWindow.webContents;
  // 页面所有资源加载完毕
  wc.on('did-finish-load', () => {
   
  });

   
  mainWindow.on('closed', () => {
    mainWindow = null;
  });
  
  // WinState 关联 mainWindow
  winState.manage(mainWindow);

   // 获取网站的截图
   getSource();
   // 打开浏览器窗口
   openShell();
   // 获取当前省市区
  getRegion();
  // 获取工作日和休息日
  getHoliday();

  // 打开子窗口
  openView(mainWindow, isPackaged);

  // menu 菜单
  Menu.setApplicationMenu(menu())
};

// 在应用准备就绪时调用函数
app.whenReady().then(() => {

  createWindow();
  
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

app.on('window-all-closed', () => {
  // macOs 需要手动关闭应用
  // if (process.platform === 'darwin') {
  //   app.quit();
  // }
  app.quit();
});

ipcMain.handle('send-event', (event, msg) => {
  // console.log(msg);
  return `main 接收完成：并发送：${msg}`;
});